package com.xphu.nio.chatroom.nio;

import java.io.IOException;
import java.net.InetSocketAddress;
import java.nio.ByteBuffer;
import java.nio.channels.SocketChannel;
import java.nio.charset.StandardCharsets;

/**
 * 客户端
 * Created with IntelliJ IDEA.
 *
 * @author : xphu
 * @date : 2021-11-30 21:41
 */
public class NIOClient {
    public static void main(String[] args) throws IOException {
        // 创建一个网络通信
        SocketChannel socketChannel = SocketChannel.open();
        // 设置非堵塞
        socketChannel.configureBlocking(false);
        // 提供服务端的端口和ip
        InetSocketAddress socketAddress = new InetSocketAddress("127.0.0.1", 6666);
        // 连接服务器
        if (!socketChannel.connect(socketAddress)) {
            // 连接失败
            while (!socketChannel.finishConnect()) {
                System.out.println("客户端连接失败，但是因为客户端是非堵塞的，并不会堵塞可以做其他的事情...");
            }
        }
        // 连接成功，发送数据
        String str = "hello, 远方你~";
        ByteBuffer buffer = ByteBuffer.wrap(str.getBytes(StandardCharsets.UTF_8));
        // 发生数据，将buffer写入channel中
        socketChannel.write(buffer);
        System.in.read();
    }
}
